#ifndef _SE_WINDOWSAPI_
#define _SE_WINDOWSAPI_

#include "Render/WindowAPI.h"

namespace SE
{
	class WindowsAPI : public WindowAPI
	{
	public:
		WindowsAPI();
		virtual ~WindowsAPI();

		virtual WindowAPIType getAPIType() const override;

		virtual void makeContextCurrent(const Ref<WindowContext>& context) override;

		virtual void setTitle(const String& title) override;
		virtual void setVSync(const Boolean vsync) override;
		virtual void setCursorFocused(const Boolean focused) override;
		virtual void pollEvents() override;
		virtual void swapBuffers() override;

		virtual Vector2i getWindowSize() const override;
		virtual Vector2f getMousePosition() const override;
		virtual Boolean isMouseButtonPressed(const MouseButton button) const override;
		virtual Boolean isKeyboardButtonPressed(const KeyboardButton button) const override;
	};
} // !namespace SE

#endif // !_SE_WINDOWSAPI_